/**
 * 这个js对应于终端选项卡
 */

$(function () {
    <!--    终端表-->
    generateAllTerminalTable();
});
//用于监听所有终端列表的复选框
var term_array=[];
var all_term_array=[];
//用于监听多个终端父任务列表的复选框
var task_array=[];
var all_task_array=[];



//展示所有终端的表格
function generateAllTerminalTable() {
    layui.use(['table', 'form', 'layer'], function(){
        var table = layui.table;
        table.render({
            elem: '#terms'
            // ,url:'http://localhost:8778/NodeTerm/getAllNodeTerm1'
            ,url:offloadUrlPrefix + '/offload/NodeTerm/getAllNodeTerm1'
            ,toolbar: '#all_terminal_head_bar'
            ,title: '车辆注册表'
            // ,width:900
            // ,width:0.9*all_tab_width
            ,width:0.9*(document.getElementById("all_tab").offsetWidth)
            ,cols: [[
                {type:'checkbox',fixed:'left'}
                ,{ field:'termId', align: "center",title: '终端id'}
                ,{field:'termRate',align: "center",title: '计算速率', sort: true}
                ,{field:'termRunPower', align: "center",title: '能耗', sort: true}
                ,{field:'loginMecId',align: "center",title: '注册MEC'}
                ,{title:'操作',color:"red",toolbar: '#all_terminal_bar', align: "center"}

            ]]
            , limits: [10, 15, 20, 25]
            , limit: 10
            ,page: { //支持传入 laypage 组件的所有参数（某些参数除外，如：jump/elem） - 详见文档
                layout: ['limit', 'prev', 'page', 'next', 'skip','count'] //自定义分页布局
                //,curr: 5 //设定初始在第 5 页
                ,groups: 1 //只显示 1 个连续页码
                ,first: false //不显示首页
                ,last: false //不显示尾页

            }
            ,done:function (res,curr,count) {
                all_term_array=[];
                console.log("这是所有数据");
                console.log(res);
                for (var i=0;i<res.data.length;i++){
                    all_term_array.push(res.data[i].termId);
                }
                console.log("这是all_term_array");
                console.log(all_term_array);

                //头部按钮禁用
                $('#multi_terminal_task_btn').attr('disabled','disabled');
                $('#multi_terminal_task_btn').attr('class','layui-btn layui-btn-disabled layui-btn-sm');
            }
        });
    });

    layui.use(['table', 'form', 'layer','jquery'], function() {
        var table = layui.table,form=layui.form,$=layui.jquery,layer=layui.layer;

        //监听展示列表
        table.on('tool(terms)', function (obj) {
            var data = obj.data; //获取表格一行的数据
            if (obj.event === 'showTermTaskList') {
                terminalLayer(data.termId);
            }
        });

        //监听复选框
        table.on('checkbox(terms)',function (obj) {
            // console.log(obj.checked); //当前是否选中状态
            // console.log(obj); //选中行的相关数据
            // console.log(obj.type); //如果触发的是全选，则为：all，如果触发的是单选，则为：one

            //全选
            if(obj.type==='all' && obj.checked===true){
                term_array=[].concat(all_term_array);   //将所有all_term_array复制给term_array
                //头部按钮可用
                $('#multi_terminal_task_btn').removeAttr('disabled');
                $('#multi_terminal_task_btn').attr('class','layui-btn layui-btn-sm');
            }
            //全不选
            else if(obj.type==='all' && obj.checked===false){
                term_array=[];
                //头部按钮禁用
                $('#multi_terminal_task_btn').attr('disabled','disabled');
                $('#multi_terminal_task_btn').attr('class','layui-btn layui-btn-disabled layui-btn-sm');
            }
            //单选取消
            else if(obj.type==='one'&& obj.checked===false){
                var index=0;
                for(var i=0;i<term_array.length;i++){
                    if(obj.data.termId===term_array[i]){
                        index=i;
                        term_array.splice(index,1);
                        break;
                    }
                }
                if(term_array.length>0){
                    //头部按钮可用
                    $('#multi_terminal_task_btn').removeAttr('disabled');
                    $('#multi_terminal_task_btn').attr('class','layui-btn layui-btn-sm');
                }
                else {
                    //头部按钮禁用
                    $('#multi_terminal_task_btn').attr('disabled','disabled');
                    $('#multi_terminal_task_btn').attr('class','layui-btn layui-btn-disabled layui-btn-sm');
                }

            }
            //单选确认
            else if(obj.type==='one'&&obj.checked===true){
                term_array.push(obj.data.termId);
                term_array.sort(sortNumber);
                function sortNumber(a,b)  //排序函数
                {
                    return a - b;
                }
                //头部按钮可用
                $('#multi_terminal_task_btn').removeAttr('disabled');
                $('#multi_terminal_task_btn').attr('class','layui-btn layui-btn-sm');
            }
        });

        //监听头部工具栏
        var active={
            term_multi_check:function () {
                // layer.msg(term_array.toString());
                multiTerminalLayer(term_array);
            }
        };
        $('.layui-btn').on('click', function(){
            var othis = $(this), method = othis.data('method');
            active[method] ? active[method].call(this, othis) : '';
        });
    });
}

//终端弹窗代码部分
function terminalLayer(terminalId){
    layer.open({
        type:1,  //1公告，2iframe
        title:false, //弹窗标题
        closeBtn:false,
        area:['630px','500px'],
        shade:0.8,
        id: 'LAY_layuipro', //设定一个id，防止重复弹出
        // btn:['添加','取消'],
        // btnAlign: 'c',//文字居中
        moveType: 1, //拖拽模式，0或者1
        content:
        // '<i class="layui-icon layui-icon-close" style="margin-top:10px;margin-right: 10px;font-size: 15px"></i>'
            '<div id="layer_close_btn" style="position: fixed;margin:0;padding-left: 6px;padding-top: 3px;width:29px;height: 34px;border-radius: 3px">' +
            '   <i class="layui-icon layui-icon-return" style="font-size: 23px"></i>' +
            '</div>' +
            '<div style="width: 92%;margin:20px auto 0">' +
            '   <fieldset class="layui-elem-field layui-field-title">' +
            '       <legend>'+terminalId+'号终端的父任务列表</legend>' +
            '   </fieldset>' +
            '</div>' +
            '<div style="width: 90%;margin:0 auto">\n' +
            '   <table style="border: none" class="layui-hide" id="oneTerminalTable" lay-filter="oneTerminalTable"></table>\n' +
            '</div>' +
            //切割后表格
            '<div id="one_cut_table_block" style="display: none">' +
            '   <div style="width: 92%;margin:25px auto 0;">' +
            '       <fieldset class="layui-elem-field layui-field-title">' +
            '           <legend id="one_cut_table_title">0号切割表格</legend>' +
            '       </fieldset>' +
            '   </div>' +
            '   <div style="width: 90%;margin: 0 auto">' +
            '       <table style="border: none" class="layui-hide" id="oneCutTable" lay-filter="oneCutTable"></table>' +
            '   </div>' +
            '</div>' +
            //切割拓扑图
            '<div style="width: 92%;margin:25px auto 0">' +
            '   <fieldset class="layui-elem-field layui-field-title">' +
            '       <legend id="one_cut_topo_title">父任务切割示意图：(尚未指定)</legend>' +
            '   </fieldset>' +
            '</div>' +
            '<div style="width: 90%;height: 220px;border: 2px solid #e8e8e8;margin: 0 auto 40px;">' +
            //没有切分时显示部分
            '   <div id="no_cut_tips" style="width: 40%;height: 40%;margin: 70px auto;display: block">' +
            '       <div style="width: 100%;height: 60%;text-align: center">' +
            '           <i class="layui-icon layui-icon-tips" style="font-size: 47px;color: #999999;"></i>' +
            '       </div>' +
            '       <div style="width: 100%;height: 40%;text-align: center"><h2 style="color: #999999">这里空空如也</h2></div>' +
            '   </div>' +

            //在这里加入拓扑图
            '   <div id="one_cut_topo_diagram">' +
            '       <div id="one_cut_topo_diagram_container"></div>' +
            '   </div>' +
            '</div>'
    });
    termtasklist(terminalId);
    $('#layer_close_btn').on('click',function () {
        layer.closeAll();
        // generatePieBlock();
        // generateBarBlock();
        generateNotOffloadTable();
    })
}

//多选终端弹窗代码部分
function multiTerminalLayer(terminal_array){
    layer.open({
        type:1,  //1公告，2iframe
        title:false, //弹窗标题
        closeBtn:false,
        area:['720px','500px'],
        shade:0.8,
        id: 'LAY_multiTerminalLayer', //设定一个id，防止重复弹出
        // btn:['添加','取消'],
        // btnAlign: 'c',//文字居中
        moveType: 1, //拖拽模式，0或者1
        content:
        // '<i class="layui-icon layui-icon-close" style="margin-top:10px;margin-right: 10px;font-size: 15px"></i>'
            '<div id="layer_close_btn" style="position: fixed;margin:0;padding-left: 6px;padding-top: 3px;width:29px;height: 34px;border-radius: 3px">' +
            '   <i class="layui-icon layui-icon-return" style="font-size: 23px"></i>' +
            '</div>' +
            '<div style="width: 92%;margin:20px auto 0">' +
            '   <fieldset class="layui-elem-field layui-field-title">' +
            '       <legend>'+terminal_array.toString()+'号终端的父任务列表</legend>' +
            '   </fieldset>' +
            '</div>' +
            '<div style="width: 90%;margin:0 auto">\n' +
            '   <table style="border: none" class="layui-hide" id="multiTerminalTable" lay-filter="multiTerminalTable"></table>\n' +
            '</div>' +
            //切割拓扑图
            '<div style="width: 92%;margin:25px auto 0">' +
            '   <fieldset class="layui-elem-field layui-field-title">' +
            '       <legend id="multi_cut_topo_title">父任务切割示意图：(尚未指定)</legend>' +
            '   </fieldset>' +
            '</div>' +
            '<div id="multi_no_cut_all" style="width: 90%;height: 220px;border: 2px solid #e8e8e8;margin: 0 auto 40px;display: block">' +
            //没有切分时显示部分
            '   <div id="multi_no_cut_tips" style="width: 40%;height: 40%;margin: 70px auto;">' +
            '       <div style="width: 100%;height: 60%;text-align: center">' +
            '           <i class="layui-icon layui-icon-tips" style="font-size: 47px;color: #999999;"></i>' +
            '       </div>' +
            '       <div style="width: 100%;height: 40%;text-align: center"><h2 style="color: #999999">这里空空如也</h2></div>' +
            '   </div>' +
            '</div>' +
            '<div id="multi_cut_all" style="width: 90%;border: 2px solid #e8e8e8;margin: 0 auto 40px;padding-top: 10px;display: none">' +
            //在这里加入拓扑图
            '   <div id="multi_cut_topo_diagram">' +
            '       <h1>你好呀</h1>   ' +
            '   </div>' +
            '</div>'
    });
    multiTermTaskList(terminal_array);
    $('#layer_close_btn').on('click',function () {
        layer.closeAll();
        // generatePieBlock();
        // generateBarBlock();
        task_array=[];
        generateNotOffloadTable();
    })
}

//展示某个终端的所有任务函数
function termtasklist(terminalId){
    layui.use('element', function(){
        var element = layui.element;

    });
    // 构建表格传入数据
    layui.use(['table', 'form', 'layer'], function(){
        var table = layui.table;
        table.render({
            elem: '#oneTerminalTable'
            // ,url:'http://localhost:8778/AltTask/getTaskByTermIddou'
            ,url:offloadUrlPrefix + '/offload/AltTask/getTaskByTermIddou'
            ,where:{termId:terminalId}
            ,toolbar: false
            ,title: '数据表'
            ,cols: [[
                {field:'termId', width:110, title: 'TermId', align:'center'}
                ,{field:'taskId', width:110, title: 'TaskID', align:'center'}
                ,{field:'taskBite', width:110, title: 'TaskBite',sort: true, align:'center'}
                ,{field:'taskRes', width:110, title: 'TaskRes',sort: true, align:'center'}
                ,{ title: '决策',toolbar: '#one_terminal_bar', align:'center'}
            ]]

            ,page: { //支持传入 laypage 组件的所有参数（某些参数除外，如：jump/elem） - 详见文档
                layout: ['limit', 'prev', 'page', 'next', 'skip','count'] //自定义分页布局
                //,curr: 5 //设定初始在第 5 页
                ,groups: 1 //只显示 1 个连续页码
                ,first: false //不显示首页
                ,last: false //不显示尾页

            }
        });
    });

    //监听切割
    layui.use(['table', 'form', 'layer','jquery'], function() {
        var table = layui.table;
        table.on('tool(oneTerminalTable)', function (obj) {
            var data = obj.data;
            if (obj.event === 'sub') {
                $.ajax({
                   type:"post",
                   // url: "http://localhost:8778/AltTask/getSubTaskdou",
                   url: offloadUrlPrefix + "/offload/AltTask/getSubTaskdou",
                   data:{TaskId: data.taskId},
                   dataType:"json",
                   success:function (rcvdata) {
                       //判断收到的数据是否为空
                       if(rcvdata.data.length===0){
                           layer.msg(data.taskId+"号父任务没有子任务");
                           $("#one_cut_table_block").css("display","block");
                           $("#one_cut_table_title").text(data.taskId+"号任务的子任务列表");
                           $("#one_cut_topo_title").text("父任务切割示意图：（无子任务）");
                           $("#no_cut_tips").css("display","block");
                           $("#one_cut_topo_diagram").css("display","none");
                           generateOneCutTable(data.taskId);
                       }
                       else if(rcvdata.data!==0){
                           console.log(checkCanCut(rcvdata.data));
                           if(checkCanCut(rcvdata.data)===true){

                               $("#no_cut_tips").css("display","none");
                               $("#one_cut_topo_diagram").css("display","block");
                               $("#one_cut_topo_title").text("父任务切割示意图："+data.taskId+"号子任务");
                               $("#one_cut_table_block").css("display","block");
                               $("#one_cut_table_title").text(data.taskId+"号任务的子任务列表");
                               $("#one_cut_topo_diagram_container").html("");
                               generateOneCutTable(data.taskId);
                               generateOneCutDiagram(data.taskId);

                               //判断是否生成快捷跳转卸载弹窗
                               $.ajax({
                                   type:"post",
                                   // url:"http://localhost:8778/OffloadSubTask/getAllBeforeOffloadTaskdou",
                                   url: offloadUrlPrefix + "/offload/OffloadSubTask/getAllBeforeOffloadTaskdou",
                                   dataType:"json",
                                   success:function (obj) {
                                       var notOffloadNum=obj.count;
                                       layer.msg("切分任务："+data.taskId+"号，见底部</br>待卸载区共已有"+notOffloadNum+"个任务");
                                       checkOffloadButton();
                                       if(notOffloadNum>=5){
                                           // alert("可以去卸载了");
                                           setTimeout(function () {
                                               generateGoToOffloadTipsLayer(notOffloadNum);
                                           },1500);
                                       }

                                   }
                               });

                               //将弹窗滚轮滚到响应位置
                               setTimeout(function () {
                                   document.getElementById("LAY_layuipro").scrollTo(0,700);
                               },2500);
                           }
                           else {
                               layer.msg(data.taskId+"号父任务无法切割");
                               $("#no_cut_tips").css("display","block");
                               $("#one_cut_topo_diagram").css("display","none");
                               $("#one_cut_topo_title").text("父任务切割示意图：（无法切割）");
                               $("#one_cut_table_block").css("display","block");
                               $("#one_cut_table_title").text(data.taskId+"号任务的子任务列表");
                               generateOneCutTable(data.taskId);
                           }

                       }
                   }
                });


            }
        });
    });
}
//生成快捷卸载窗口
function generateGoToOffloadTipsLayer(notOffloadNum){
    layui.use('layer',function () {
        layer.open({
            type:1,
            title:false,
            closeBtn:false,
            area:['250px','150px'],
            shade:0,
            id:"goToOffloadLayer",
            btn:['前往卸载','暂不卸载'],
            offset:[200,1100],
            content:
                '<div style="width: 90%;margin: 20px auto;font-size: 16px;">' +
                '现在有<cite style="color: red;">'+(notOffloadNum)+'</cite>个任务可以卸载，是否立即前往卸载？' +
                '</div>',
            yes:function () {
                // alert("牛逼坏了");
                layer.closeAll();
                // location.reload();  //从服务器重新加载
                $("ul.layui-tab-title li").removeAttr("class");
                $("ul.layui-tab-title li:eq(2)").attr("class","layui-this");
                $(".layui-tab-content .layui-tab-item").attr("class","layui-tab-item");
                $(".layui-tab-content .layui-tab-item:eq(2)").attr("class","layui-tab-item layui-show");
                $("#not_offload_breadnav").html("<cite style=\"color: firebrick;\">已切割未卸载</cite>");
                $("#offload_breadnav").html("已卸载");
                $("#not_offload_block").css("display","block");
                $("#offload_block").css("display","none");
                window.scrollTo(0,$("#second-main-block").offset().top);
                generateNotOffloadTable();
            },
            btn2:function () {
                layer.close(layer.index);
            }
        })
    })
}

//展示多个终端的任务列表
function multiTermTaskList(terminal_array){
    layui.use('table',function () {
        var table=layui.table;
        table.render({
            elem: '#multiTerminalTable'
            // ,url:'http://localhost:8778/AltTask/getTaskByMultiTermIdArraydou'
            ,url:offloadUrlPrefix + '/offload/AltTask/getTaskByMultiTermIdArraydou'
            ,where:{terminalArray:terminal_array}
            ,width:648
            ,toolbar: '#multi_terminal_subtask_bar'
            ,title: '数据表'
            ,cols: [[
                {type:'checkbox',fixed:'left'},
                {field:'termId', title: '所属终端Id', align:'center'}
                ,{field:'taskId', title: '任务Id', align:'center'}
                ,{field:'taskBite', title: 'TaskBite',sort: true, align:'center'}
                ,{field:'taskRes', title: 'TaskRes',sort: true, align:'center'}
            ]]
            ,page: { //支持传入 laypage 组件的所有参数（某些参数除外，如：jump/elem） - 详见文档
                layout: ['count'] //自定义分页布局
                //,curr: 5 //设定初始在第 5 页
                //'limit', 'prev', 'page', 'next', 'skip',
                ,groups: 1 //只显示 1 个连续页码
                ,first: false //不显示首页
                ,last: false //不显示尾页
            }
            ,done:function (res,curr,count) {
                all_task_array=[];
                console.log("这是所有数据");
                console.log(res);
                for (var i=0;i<res.data.length;i++){
                    all_task_array.push(res.data[i].taskId);
                }
                console.log("这是all_task_array");
                console.log(all_task_array);

                //头部按钮禁用
                $('#multi_terminal_subtask_btn').attr('disabled','disabled');
                $('#multi_terminal_subtask_btn').attr('class','layui-btn layui-btn-disabled layui-btn-sm');
            }
        });
    });
    layui.use(['table','layer','jquery','form'],function () {
        var table=layui.table,layer=layui.layer,$=layui.jquery,form=layui.form;
        //监听复选框
        table.on('checkbox(multiTerminalTable)',function (obj) {
            console.log(obj.checked); //当前是否选中状态
            console.log(obj); //选中行的相关数据
            console.log(obj.type); //如果触发的是全选，则为：all，如果触发的是单选，则为：one

            //全选
            if(obj.type==='all' && obj.checked===true){
                task_array=[].concat(all_task_array);   //将所有all_term_array复制给term_array
                task_array.sort(sortNumber);
                function sortNumber(a,b)  //排序函数
                {
                    return a - b;
                }
                //头部按钮可用
                $('#multi_terminal_subtask_btn').removeAttr('disabled');
                $('#multi_terminal_subtask_btn').attr('class','layui-btn layui-btn-sm');
            }
            //全不选
            else if(obj.type==='all' && obj.checked===false){
                task_array=[];
                //头部按钮禁用
                $('#multi_terminal_subtask_btn').attr('disabled','disabled');
                $('#multi_terminal_subtask_btn').attr('class','layui-btn layui-btn-disabled layui-btn-sm');
            }
            //单选取消
            else if(obj.type==='one'&& obj.checked===false){
                var index=0;
                for(var i=0;i<task_array.length;i++){
                    if(obj.data.taskId===task_array[i]){
                        index=i;
                        task_array.splice(index,1);
                        break;
                    }
                }
                if(task_array.length>0){
                    //头部按钮可用
                    $('#multi_terminal_subtask_btn').removeAttr('disabled');
                    $('#multi_terminal_subtask_btn').attr('class','layui-btn layui-btn-sm');
                }
                else {
                    //头部按钮禁用
                    $('#multi_terminal_subtask_btn').attr('disabled','disabled');
                    $('#multi_terminal_subtask_btn').attr('class','layui-btn layui-btn-disabled layui-btn-sm');
                }

            }
            //单选确认
            else if(obj.type==='one'&&obj.checked===true){
                task_array.push(obj.data.taskId);
                task_array.sort(sortNumber);
                function sortNumber(a,b)  //排序函数
                {
                    return a - b;
                }
                //头部按钮可用
                $('#multi_terminal_subtask_btn').removeAttr('disabled');
                $('#multi_terminal_subtask_btn').attr('class','layui-btn layui-btn-sm');
            }
        });

        //监听头部工具栏
        var active={
            subtask_multi_cut:function () {
                // layer.msg(task_array.toString());
                $('#multi_cut_topo_title').html("父任务切割示意图："+task_array.toString()+"号");
                $('#multi_no_cut_all').css('display','none');
                $('#multi_cut_all').css('display','block');
                $('#multi_cut_topo_diagram').html(multiCutInnerHtml(task_array));
                //将窗口滚动至相应位置
                console.log('距离上方位置');
                console.log($("#multi_cut_topo_title").offset().top);
                console.log(getTop(document.getElementById('multi_cut_topo_title')));
                document.getElementById('LAY_multiTerminalLayer').scrollTo(0,getTop(document.getElementById('multi_cut_topo_title'))-90);

                layer.msg("已经切分");

                //判断是否生成快捷跳转卸载弹窗
                $.ajax({
                    type:"post",
                    // url:"http://localhost:8778/OffloadSubTask/getAllBeforeOffloadTaskdou",
                    url:offloadUrlPrefix + "/offload/OffloadSubTask/getAllBeforeOffloadTaskdou",
                    dataType:"json",
                    async:false,
                    success:function (obj) {
                        var notOffloadNum=obj.count;
                        checkOffloadButton();
                        generateNotOffloadTable();
                        if(notOffloadNum>=5){
                            // alert("可以去卸载了");
                            setTimeout(function () {
                                generateGoToOffloadTipsLayer(notOffloadNum);
                            },1500);
                        }
                    }
                })
            }
        };
        $('.layui-btn').on('click', function(){
            var othis = $(this), method = othis.data('method');
            active[method] ? active[method].call(this, othis) : '';
        });
    });
}
//生成多选切割的图
function multiCutInnerHtml(taskArray){
    var innerHtml='';
    var subTaskList=[];
    subTaskList=getSubTaskList(taskArray);
    for(var i=0;i<taskArray.length;i++){
        innerHtml=innerHtml+
            '<div style="border-top:1.5px solid #e9e9e9;width: 92%;height: 25px;line-height: 25px;margin: 0 auto;padding-left: 10px">' +
                taskArray[i]+'号父任务'+
            '</div>' +
            '<div id="square_group_tkId_'+taskArray[i]+'" style="width: 92%;height: 70px;margin: 0 auto 10px">' +
            //中间加入图
            drawInnerSquare(taskArray[i],subTaskList) +
            '</div>'
    }
    return innerHtml;
}
//根据数组获取子任务集合详细数据
function getSubTaskList(taskArray) {
    var subTaskList=[];
    $.ajax({
        type: 'get',
        // url:'http://localhost:8778/AltTask/getMultiSubTaskdonghuadou',
        url:offloadUrlPrefix + '/offload/AltTask/getMultiSubTaskdonghuadou',
        data:{taskArray:taskArray},
        async: false,//！！异步数据关闭
        dataType:'json',
        success:function (obj) {
            subTaskList=obj;
        }
    });
    console.log("hohoho");
    console.log(subTaskList);
    return subTaskList;
}
//画出正方形
function drawInnerSquare(taskId,subTaskList){
    var squareHtml='';
    var subTaskListByTaskId=[];
    for(var i=0;i<subTaskList.length;i++){
        if(taskId===subTaskList[i].oriTaskId){
            subTaskListByTaskId.push(subTaskList[i]);
        }
    }
    console.log('这是subTaskListByTaskId');
    console.log(subTaskListByTaskId);
    console.log('============');
    //判断父任务是否有子任务
    if(subTaskListByTaskId.length>0){
        for(var i=0;i<subTaskListByTaskId.length;i++){
            // console.log('['+subTaskListByTaskId[i].oriTaskId+'---'+subTaskListByTaskId[i].subTaskId+"]");
            // squareHtml=squareHtml+"["+subTaskListByTaskId[i].oriTaskId+'---'+subTaskListByTaskId[i].subTaskId+"]"
            squareHtml=squareHtml+
                '<div class="multi-sub-task" id="subTaskId_'+subTaskListByTaskId[i].subTaskId+'">sub:'+subTaskListByTaskId[i].subTaskId+'</div>'
        }

    }
    else{
        // console.log('['+subTaskListByTaskId[i].oriTaskId+'---'+subTaskListByTaskId[i].subTaskId+"]");
        // squareHtml=squareHtml+"["+subTaskListByTaskId[i].oriTaskId+'---'+subTaskListByTaskId[i].subTaskId+"]"
        squareHtml=squareHtml+
            '<div class="multi-sub-task-nullTask"><i class="layui-icon layui-icon-tips" style="font-size: 20px"></i>此任务暂无子任务</div>'

    }
    //给相应部分增加动画
    layui.use('layer',function () {
        var layer=layui.layer;
        //必须加上延时，否则动画不生效
        setTimeout(function () {
            for(var i=0;i<subTaskListByTaskId.length;i++){
                let i_inClosure=i;//闭包内部元素引用
                var str='subTaskId_'+subTaskListByTaskId[i].subTaskId;
                // alert(subTaskListByTaskId[i].subTaskId);
                if(subTaskListByTaskId[i].sig===1){
                    $('#' + str).css('backgroundColor', '#FF5722');
                    $('#' + str).css('transform','scale(0.85,0.85)');
                    $('#' + str).css('transition', '2s');
                }
                $('#'+str).mouseover(function () {
                    // alert(this.id);
                    // this.css('border','1px solid black');
                    // this.css('transition', '0.2s');
                    this.style.borderRadius='25%';
                    this.style.transition='0.2s';
                    var content;
                    if(subTaskListByTaskId[i_inClosure].sig===1){
                        content="子任务号："+subTaskListByTaskId[i_inClosure].subTaskId+"<br>"+
                            "状态：<cite style='color: skyblue'>已切割</cite>";
                    }
                    else {
                        content="子任务号："+subTaskListByTaskId[i_inClosure].subTaskId+"<br>"+
                            "状态：<cite style='color: snow'>未切割</cite>";
                    }

                    layer.msg(content);

                });
                $('#'+str).mouseout(function () {
                    this.style.borderRadius='5%';
                    this.style.transition='0.2s';
                    layer.close(layer.index);
                })
            }
        },1000);
    });

    // console.log('距离上方位置');
    // console.log($("#multi_cut_topo_title").offset().top);
    // console.log(getTop(document.getElementById('multi_cut_topo_title')));
    // document.getElementById('LAY_multiTerminalLayer').scrollTo(0,getTop(document.getElementById('multi_cut_topo_title')));
    return squareHtml;

}
//获取元素相对于窗口的位置
function getTop(e) {
    var offset=e.offsetTop;
    if(e.offsetParent!=null) offset+=getTop(e.offsetParent);
    return offset;
}

//生成父任务的子任务表格
function generateOneCutTable(taskId) {
    layui.use(['table', 'form', 'layer'], function(){
        var table = layui.table;
        table.render({
            elem: '#oneCutTable'
            // ,url:'http://localhost:8778/AltTask/getSubTaskdou'
            ,url:offloadUrlPrefix + '/offload/AltTask/getSubTaskdou'
            ,where:{TaskId:taskId}
            ,toolbar: false
            ,title: '数据表'
            ,cols: [[
                {field:'subTaskId', width:182, title: '子任务号', align:'center'}
                ,{field:'oriTaskId', width:182, title: '父任务号', align:'center'}
                ,{field:'sig', width:182, title: '切割决策a',sort: true, align:'center'}

            ]]

            ,page: { //支持传入 laypage 组件的所有参数（某些参数除外，如：jump/elem） - 详见文档
                layout: ['limit', 'prev', 'page', 'next', 'skip','count'] //自定义分页布局
                //,curr: 5 //设定初始在第 5 页
                ,groups: 1 //只显示 1 个连续页码
                ,first: false //不显示首页
                ,last: false //不显示尾页

            }
        });
    });
}
//检测是否可以切割
function checkCanCut(data){
    var check=false;
    for(var i=0;i<data.length;i++){
        if(data[i].sig===1){
            check=true;
        }
    }
    return check;
}
//获取此次切割的数量
function canCutNumber(data){
    var num=0;
    for(var i=0;i<data.length;i++){
        if(data[i].sig===1){
            num++;
        }
    }
    return num;
}
//获取已经切割的数量
function notOffloadNumber(){
    var dataCount=0;
    $.ajax({                 //获取表格数量信息
        type:"post",
        // url:"http://localhost:8778/OffloadSubTask/getAllBeforeOffloadTaskdou",
        url:offloadUrlPrefix + "/offload/OffloadSubTask/getAllBeforeOffloadTaskdou",
        dataType:"json",
        success:function (obj) {
            dataCount=obj.count;
        }
    });
    return dataCount;
}

//画切割图函数
function generateOneCutDiagram(taskId){
    var sub_task_arrays=[];
    $.ajax({
        type: 'get',
        // url: 'http://localhost:8778/AltTask/getSubTaskdonghuadou',
        url: offloadUrlPrefix + '/offload/AltTask/getSubTaskdonghuadou',
        data: { TaskId: taskId },
        async: false,
        dataType: 'json',
        success: function (msg) {
            sub_task_arrays = msg;
        },
        error: function () {
           alert("请求错误");
        }
    });
    layui.use('layer', function () {
        var $ = layui.jquery;
        $(function () {
            var sub_task_nums = sub_task_arrays;   //获取参数
            for (let i = 1; i <= sub_task_nums.length; i++) {
                var newDiv = $("<div></div>").addClass('sub-task num-order' + i);
                $("#one_cut_topo_diagram_container").append(newDiv);
            }
            setTimeout(function () {
                for (let i = 1; i <= sub_task_nums.length; i++) {        //可卸载子任务标记
                    var str = 'num-order' + i;
                    if (sub_task_nums[i - 1].sig == 1) {
                        // $('.' + str).animate({ backgroundColor: "#98b66d" });
                        $('.' + str).css('backgroundColor', '#FF5722');
                        $('.' + str).css('transform','scale(0.85,0.85)');
                        $('.' + str).css('transition', '2s');
                        // $('.' + str).html(i + '<br>(可卸载)');
                    }
                    // else if(sub_task_nums[i - 1].sig !== 1){
                    //     // $('.' + str).css('transform','scale(0.92,0.92)');
                    //     // $('.' + str).css('transition', '2.5s');
                    // }
                    $('.' + str).html("sub: "+sub_task_nums[i-1].subTaskId);
                    // $('.' + str).css('marginLeft', '2px');
                    $('.' + str).mouseover(function () {
                        this.style.borderRadius='25%';
                        this.style.transition='0.2s';
                        var content;
                        if(sub_task_nums[i-1].sig===1){
                            content="子任务号："+sub_task_nums[i-1].subTaskId+"<br>"+
                                "状态：<cite style='color: skyblue'>已切割</cite>";
                        }
                        else{
                            content="子任务号："+sub_task_nums[i-1].subTaskId+"<br>"+
                                "状态：<cite style='color: snow'>未切割</cite>";
                        }
                        layer.msg(content);

                    });
                    $('.' + str).mouseout(function () {
                        this.style.borderRadius='5%';
                        this.style.transition='0.2s';
                        layer.close(layer.index);
                    })
                }
            }, 2800);///////////////


        });
    });
}


